home *** CD-ROM | disk | FTP | other *** search
Text File | 2010-05-14 | 37.4 KB | 1,197 lines |
- package mx.controls
- {
- import flash.display.DisplayObject;
- import flash.events.Event;
- import flash.events.FocusEvent;
- import flash.events.KeyboardEvent;
- import flash.events.MouseEvent;
- import flash.events.TimerEvent;
- import flash.text.TextLineMetrics;
- import flash.ui.Keyboard;
- import flash.utils.Timer;
- import mx.controls.dataGridClasses.DataGridListData;
- import mx.controls.listClasses.BaseListData;
- import mx.controls.listClasses.IDropInListItemRenderer;
- import mx.controls.listClasses.IListItemRenderer;
- import mx.core.EdgeMetrics;
- import mx.core.IDataRenderer;
- import mx.core.IFlexDisplayObject;
- import mx.core.IInvalidating;
- import mx.core.IUIComponent;
- import mx.core.UIComponent;
- import mx.core.UITextField;
- import mx.core.mx_internal;
- import mx.events.FlexEvent;
- import mx.managers.IFocusManagerComponent;
- import mx.skins.ProgrammaticSkin;
- import mx.skins.RectangularBorder;
- import mx.styles.ISimpleStyleClient;
-
- use namespace mx_internal;
-
- public class Button extends UIComponent implements IDataRenderer, IDropInListItemRenderer, IFocusManagerComponent, IListItemRenderer
- {
- mx_internal static var createAccessibilityImplementation:Function;
-
- mx_internal static const VERSION:String = "2.0.1.0";
-
- private var enabledChanged:Boolean = false;
-
- private var skinMeasuredWidth:Number;
-
- mx_internal var disabledSkinName:String = "disabledSkin";
-
- mx_internal var downSkinName:String = "downSkin";
-
- mx_internal var _labelPlacement:String = "right";
-
- private var _data:Object;
-
- private var _phase:String = "up";
-
- mx_internal var _toggle:Boolean = false;
-
- mx_internal var selectedOverSkinName:String = "selectedOverSkin";
-
- mx_internal var selectedDisabledSkinName:String = "selectedDisabledSkin";
-
- private var labelSet:Boolean;
-
- mx_internal var toggleChanged:Boolean = false;
-
- private var labelChanged:Boolean = false;
-
- private var autoRepeatTimer:Timer;
-
- mx_internal var disabledIconName:String = "disabledIcon";
-
- mx_internal var upSkinName:String = "upSkin";
-
- private var toolTipSet:Boolean = false;
-
- mx_internal var downIconName:String = "downIcon";
-
- mx_internal var currentIcon:IFlexDisplayObject;
-
- private var styleChangedFlag:Boolean = true;
-
- private var _autoRepeat:Boolean = false;
-
- mx_internal var selectedOverIconName:String = "selectedOverIcon";
-
- private var _label:String = "";
-
- mx_internal var selectedDisabledIconName:String = "selectedDisabledIcon";
-
- mx_internal var extraSpacing:Number;
-
- mx_internal var selectedUpSkinName:String = "selectedUpSkin";
-
- mx_internal var upIconName:String = "upIcon";
-
- mx_internal var buttonOffset:Number = 0;
-
- private var skinMeasuredHeight:Number;
-
- mx_internal var centerContent:Boolean = true;
-
- private var oldUnscaledWidth:Number;
-
- private var skins:Array;
-
- mx_internal var overSkinName:String = "overSkin";
-
- mx_internal var currentSkin:IFlexDisplayObject;
-
- mx_internal var selectedDownSkinName:String = "selectedDownSkin";
-
- private var _listData:BaseListData;
-
- mx_internal var iconName:String = "icon";
-
- mx_internal var _emphasized:Boolean = false;
-
- public var selectedField:String = null;
-
- private var icons:Array;
-
- public var stickyHighlighting:Boolean = false;
-
- mx_internal var selectedUpIconName:String = "selectedUpIcon";
-
- mx_internal var selectedDownIconName:String = "selectedDownIcon";
-
- mx_internal var overIconName:String = "overIcon";
-
- private var selectedSet:Boolean;
-
- protected var textField:UITextField;
-
- mx_internal var _selected:Boolean = false;
-
- public function Button()
- {
- skins = [];
- icons = [];
- mx_internal::buttonOffset = 0;
- mx_internal::centerContent = true;
- mx_internal::extraSpacing = 10 + 10;
- styleChangedFlag = true;
- mx_internal::upSkinName = "upSkin";
- mx_internal::overSkinName = "overSkin";
- mx_internal::downSkinName = "downSkin";
- mx_internal::disabledSkinName = "disabledSkin";
- mx_internal::selectedUpSkinName = "selectedUpSkin";
- mx_internal::selectedOverSkinName = "selectedOverSkin";
- mx_internal::selectedDownSkinName = "selectedDownSkin";
- mx_internal::selectedDisabledSkinName = "selectedDisabledSkin";
- mx_internal::iconName = "icon";
- mx_internal::upIconName = "upIcon";
- mx_internal::overIconName = "overIcon";
- mx_internal::downIconName = "downIcon";
- mx_internal::disabledIconName = "disabledIcon";
- mx_internal::selectedUpIconName = "selectedUpIcon";
- mx_internal::selectedOverIconName = "selectedOverIcon";
- mx_internal::selectedDownIconName = "selectedDownIcon";
- mx_internal::selectedDisabledIconName = "selectedDisabledIcon";
- enabledChanged = false;
- toolTipSet = false;
- _autoRepeat = false;
- mx_internal::_emphasized = false;
- _label = "";
- labelChanged = false;
- mx_internal::_labelPlacement = ButtonLabelPlacement.RIGHT;
- _phase = ButtonPhase.UP;
- mx_internal::_selected = false;
- selectedField = null;
- stickyHighlighting = false;
- mx_internal::_toggle = false;
- mx_internal::toggleChanged = false;
- super();
- mouseChildren = false;
- addEventListener(MouseEvent.ROLL_OVER,rollOverHandler);
- addEventListener(MouseEvent.ROLL_OUT,rollOutHandler);
- addEventListener(MouseEvent.MOUSE_DOWN,mouseDownHandler);
- addEventListener(MouseEvent.MOUSE_UP,mouseUpHandler);
- addEventListener(MouseEvent.CLICK,clickHandler);
- }
-
- override protected function adjustFocusRect(param1:DisplayObject = null) : void
- {
- super.adjustFocusRect(!mx_internal::currentSkin ? DisplayObject(mx_internal::currentIcon) : this);
- }
-
- mx_internal function getCurrentIcon() : IFlexDisplayObject
- {
- var _loc1_:String = null;
- var _loc2_:IFlexDisplayObject = null;
- var _loc3_:Class = null;
- _loc1_ = mx_internal::getCurrentIconName();
- if(!_loc1_)
- {
- return null;
- }
- _loc2_ = IFlexDisplayObject(getChildByName(_loc1_));
- if(_loc2_ == null)
- {
- _loc3_ = Class(getStyle(_loc1_));
- if(_loc3_ == null)
- {
- _loc3_ = Class(getStyle(mx_internal::iconName));
- }
- if(_loc3_ != null)
- {
- _loc2_ = IFlexDisplayObject(new _loc3_());
- _loc2_.name = _loc1_;
- if(_loc2_ is ISimpleStyleClient)
- {
- ISimpleStyleClient(_loc2_).styleName = this;
- }
- addChild(DisplayObject(_loc2_));
- icons.push(_loc2_);
- }
- }
- return _loc2_;
- }
-
- mx_internal function layoutContents(param1:Number, param2:Number, param3:Boolean) : void
- {
- var _loc4_:Number = NaN;
- var _loc5_:Number = NaN;
- var _loc6_:Number = NaN;
- var _loc7_:Number = NaN;
- var _loc8_:Number = NaN;
- var _loc9_:Number = NaN;
- var _loc10_:Number = NaN;
- var _loc11_:Number = NaN;
- var _loc12_:Number = NaN;
- var _loc13_:Number = NaN;
- var _loc14_:Number = NaN;
- var _loc15_:Number = NaN;
- var _loc16_:Number = NaN;
- var _loc17_:Number = NaN;
- var _loc18_:Number = NaN;
- var _loc19_:Number = NaN;
- var _loc20_:TextLineMetrics = null;
- var _loc21_:Number = NaN;
- var _loc22_:String = null;
- var _loc23_:EdgeMetrics = null;
- var _loc24_:Number = NaN;
- var _loc25_:Number = NaN;
- var _loc26_:Number = NaN;
- var _loc27_:Number = NaN;
- var _loc28_:Number = NaN;
- _loc4_ = 0;
- _loc5_ = 0;
- _loc6_ = 0;
- _loc7_ = 0;
- _loc8_ = 0;
- _loc9_ = 0;
- _loc10_ = 0;
- _loc11_ = 0;
- _loc12_ = 2;
- _loc13_ = 2;
- _loc14_ = getStyle("paddingLeft");
- _loc15_ = getStyle("paddingRight");
- _loc16_ = getStyle("paddingTop");
- _loc17_ = getStyle("paddingBottom");
- _loc18_ = 0;
- _loc19_ = 0;
- if(label)
- {
- _loc20_ = measureText(label);
- if(_loc20_.width > 0)
- {
- _loc18_ = _loc14_ + _loc15_ + getStyle("textIndent") + _loc20_.width;
- }
- _loc19_ = _loc20_.height;
- }
- else
- {
- _loc20_ = measureText("Wj");
- _loc19_ = _loc20_.height;
- }
- _loc21_ = param3 ? mx_internal::buttonOffset : 0;
- _loc22_ = getStyle("textAlign");
- _loc23_ = Boolean(mx_internal::currentSkin) && mx_internal::currentSkin is RectangularBorder ? RectangularBorder(mx_internal::currentSkin).borderMetrics : null;
- _loc24_ = param1;
- _loc25_ = param2 - _loc16_ - _loc17_;
- if(_loc23_)
- {
- _loc24_ -= _loc23_.left + _loc23_.right;
- _loc25_ -= _loc23_.top + _loc23_.bottom;
- }
- if(mx_internal::currentIcon)
- {
- _loc8_ = mx_internal::currentIcon.width;
- _loc9_ = mx_internal::currentIcon.height;
- }
- if(labelPlacement == ButtonLabelPlacement.LEFT || labelPlacement == ButtonLabelPlacement.RIGHT)
- {
- _loc12_ = getStyle("horizontalGap");
- if(_loc8_ == 0 || _loc18_ == 0)
- {
- _loc12_ = 0;
- }
- if(_loc18_ > 0)
- {
- textField.width = _loc4_ = Math.max(_loc24_ - _loc8_ - _loc12_ - _loc14_ - _loc15_,0);
- }
- else
- {
- textField.width = _loc4_ = 0;
- }
- textField.height = _loc5_ = Math.min(_loc25_ + 2,_loc19_ + UITextField.mx_internal::TEXT_HEIGHT_PADDING);
- if(labelPlacement == ButtonLabelPlacement.RIGHT)
- {
- _loc6_ = _loc8_ + _loc12_;
- if(mx_internal::centerContent)
- {
- if(_loc22_ == "left")
- {
- _loc6_ += _loc14_;
- }
- else if(_loc22_ == "right")
- {
- _loc6_ += _loc24_ - _loc4_ - _loc8_ - _loc12_ - _loc14_;
- }
- else
- {
- _loc28_ = (_loc24_ - _loc4_ - _loc8_ - _loc12_) / 2;
- _loc6_ += Math.max(_loc28_,_loc14_);
- }
- }
- _loc10_ = _loc6_ - (_loc8_ + _loc12_);
- if(!mx_internal::centerContent)
- {
- _loc6_ += _loc14_;
- }
- }
- else
- {
- _loc6_ = _loc24_ - _loc4_ - _loc8_ - _loc12_ - _loc15_;
- if(mx_internal::centerContent)
- {
- if(_loc22_ == "left")
- {
- _loc6_ = 2;
- }
- else if(_loc22_ == "right")
- {
- _loc6_--;
- }
- else if(_loc6_ > 0)
- {
- _loc6_ /= 2;
- }
- }
- _loc10_ = _loc6_ + _loc4_ + _loc12_;
- }
- _loc11_ = _loc7_ = 0;
- if(mx_internal::centerContent)
- {
- _loc11_ = Math.round((_loc25_ - _loc9_) / 2) + _loc16_;
- _loc7_ = Math.round((_loc25_ - _loc5_) / 2) + _loc16_;
- }
- else
- {
- _loc7_ += Math.max(0,(_loc25_ - _loc5_) / 2) + _loc16_;
- _loc11_ += Math.max(0,(_loc25_ - _loc9_) / 2 - 1) + _loc16_;
- }
- }
- else
- {
- _loc13_ = getStyle("verticalGap");
- if(_loc9_ == 0 || _loc19_ == 0)
- {
- _loc13_ = 0;
- }
- if(_loc18_ > 0)
- {
- textField.width = _loc4_ = Math.min(_loc24_,_loc18_ + UITextField.mx_internal::TEXT_WIDTH_PADDING);
- textField.height = _loc5_ = Math.min(_loc25_ - _loc9_ + 1,_loc19_ + 5);
- }
- else
- {
- textField.width = _loc4_ = 0;
- textField.height = _loc5_ = 0;
- }
- _loc6_ = (_loc24_ - _loc4_) / 2;
- _loc10_ = (_loc24_ - _loc8_) / 2;
- if(labelPlacement == ButtonLabelPlacement.TOP)
- {
- _loc7_ = _loc25_ - _loc5_ - _loc9_ - _loc13_;
- if(mx_internal::centerContent && _loc7_ > 0)
- {
- _loc7_ /= 2;
- }
- _loc7_ += _loc16_;
- _loc11_ = _loc7_ + _loc5_ + _loc13_ - 3;
- }
- else
- {
- _loc7_ = _loc9_ + _loc13_ + _loc16_;
- if(mx_internal::centerContent)
- {
- _loc7_ += (_loc25_ - _loc5_ - _loc9_ - _loc13_) / 2 + 1;
- }
- _loc11_ = _loc7_ - _loc9_ - _loc13_ + 3;
- }
- }
- _loc26_ = _loc21_;
- _loc27_ = _loc21_;
- if(_loc23_)
- {
- _loc26_ += _loc23_.left;
- _loc27_ += _loc23_.top;
- }
- textField.x = _loc6_ + _loc26_;
- textField.y = _loc7_ + _loc27_;
- if(mx_internal::currentIcon)
- {
- _loc10_ += _loc26_;
- _loc11_ += _loc27_;
- mx_internal::currentIcon.x = Math.round(_loc10_);
- mx_internal::currentIcon.y = Math.round(_loc11_);
- }
- if(mx_internal::currentSkin)
- {
- setChildIndex(DisplayObject(mx_internal::currentSkin),numChildren - 1);
- }
- if(mx_internal::currentIcon)
- {
- setChildIndex(DisplayObject(mx_internal::currentIcon),numChildren - 1);
- }
- if(textField)
- {
- setChildIndex(textField,numChildren - 1);
- }
- }
-
- override protected function keyDownHandler(param1:KeyboardEvent) : void
- {
- if(!enabled)
- {
- return;
- }
- if(param1.keyCode == Keyboard.SPACE)
- {
- mx_internal::buttonPressed();
- }
- }
-
- public function get autoRepeat() : Boolean
- {
- return _autoRepeat;
- }
-
- protected function rollOutHandler(param1:MouseEvent) : void
- {
- if(mx_internal::phase == ButtonPhase.OVER)
- {
- mx_internal::phase = ButtonPhase.UP;
- param1.updateAfterEvent();
- }
- else if(mx_internal::phase == ButtonPhase.DOWN && !stickyHighlighting)
- {
- mx_internal::phase = ButtonPhase.OVER;
- param1.updateAfterEvent();
- if(autoRepeatTimer)
- {
- autoRepeatTimer.stop();
- }
- }
- }
-
- override protected function keyUpHandler(param1:KeyboardEvent) : void
- {
- if(!enabled)
- {
- return;
- }
- if(param1.keyCode == Keyboard.SPACE)
- {
- mx_internal::buttonReleased();
- if(mx_internal::phase == ButtonPhase.DOWN)
- {
- dispatchEvent(new MouseEvent(MouseEvent.CLICK));
- }
- mx_internal::phase = ButtonPhase.UP;
- }
- }
-
- public function set autoRepeat(param1:Boolean) : void
- {
- _autoRepeat = param1;
- if(param1)
- {
- autoRepeatTimer = new Timer(1);
- }
- else
- {
- autoRepeatTimer = null;
- }
- }
-
- mx_internal function buttonPressed() : void
- {
- mx_internal::phase = ButtonPhase.DOWN;
- dispatchEvent(new FlexEvent(FlexEvent.BUTTON_DOWN));
- if(autoRepeat)
- {
- autoRepeatTimer.delay = getStyle("repeatDelay");
- autoRepeatTimer.addEventListener(TimerEvent.TIMER,autoRepeatTimer_timerDelayHandler);
- autoRepeatTimer.start();
- }
- }
-
- mx_internal function viewIcon() : void
- {
- var _loc1_:String = null;
- _loc1_ = mx_internal::getCurrentIconName();
- mx_internal::viewIconForPhase(_loc1_);
- }
-
- mx_internal function changeSkins() : void
- {
- var _loc1_:int = 0;
- var _loc2_:int = 0;
- _loc1_ = int(skins.length);
- _loc2_ = 0;
- while(_loc2_ < _loc1_)
- {
- removeChild(skins[_loc2_]);
- _loc2_++;
- }
- skins = [];
- }
-
- private function autoRepeatTimer_timerHandler(param1:Event) : void
- {
- if(!enabled)
- {
- return;
- }
- dispatchEvent(new FlexEvent(FlexEvent.BUTTON_DOWN));
- }
-
- private function systemManager_mouseUpHandler(param1:MouseEvent) : void
- {
- if(contains(DisplayObject(param1.target)))
- {
- return;
- }
- mx_internal::phase = ButtonPhase.UP;
- mx_internal::buttonReleased();
- param1.updateAfterEvent();
- }
-
- protected function mouseUpHandler(param1:MouseEvent) : void
- {
- if(!enabled)
- {
- return;
- }
- mx_internal::phase = ButtonPhase.OVER;
- mx_internal::buttonReleased();
- param1.updateAfterEvent();
- }
-
- public function set labelPlacement(param1:String) : void
- {
- mx_internal::_labelPlacement = param1;
- invalidateSize();
- invalidateDisplayList();
- dispatchEvent(new Event("labelPlacementChanged"));
- }
-
- mx_internal function viewIconForPhase(param1:String) : void
- {
- var _loc2_:IFlexDisplayObject = null;
- var _loc3_:Class = null;
- _loc2_ = IFlexDisplayObject(getChildByName(param1));
- if(_loc2_ == null)
- {
- _loc3_ = Class(getStyle(param1));
- if(_loc3_ == null)
- {
- _loc3_ = Class(getStyle(mx_internal::iconName));
- }
- if(_loc3_ != null)
- {
- _loc2_ = IFlexDisplayObject(new _loc3_());
- _loc2_.name = param1;
- if(_loc2_ is ISimpleStyleClient)
- {
- ISimpleStyleClient(_loc2_).styleName = this;
- }
- addChild(DisplayObject(_loc2_));
- icons.push(_loc2_);
- }
- }
- if(mx_internal::currentIcon != null)
- {
- mx_internal::currentIcon.visible = false;
- }
- mx_internal::currentIcon = _loc2_;
- if(mx_internal::currentIcon != null)
- {
- mx_internal::currentIcon.visible = true;
- }
- }
-
- mx_internal function getTextField() : UITextField
- {
- return textField;
- }
-
- mx_internal function setSelected(param1:Boolean) : void
- {
- if(mx_internal::_selected != param1)
- {
- mx_internal::_selected = param1;
- invalidateDisplayList();
- if(toggle)
- {
- dispatchEvent(new Event(Event.CHANGE));
- }
- dispatchEvent(new FlexEvent(FlexEvent.VALUE_COMMIT));
- }
- }
-
- protected function clickHandler(param1:MouseEvent) : void
- {
- if(!enabled)
- {
- param1.stopImmediatePropagation();
- return;
- }
- if(toggle)
- {
- mx_internal::setSelected(!selected);
- }
- }
-
- mx_internal function getCurrentIconName() : String
- {
- var _loc1_:String = null;
- if(!enabled)
- {
- _loc1_ = selected ? mx_internal::selectedDisabledIconName : mx_internal::disabledIconName;
- }
- else if(mx_internal::phase == ButtonPhase.UP)
- {
- _loc1_ = selected ? mx_internal::selectedUpIconName : mx_internal::upIconName;
- }
- else if(mx_internal::phase == ButtonPhase.OVER)
- {
- _loc1_ = selected ? mx_internal::selectedOverIconName : mx_internal::overIconName;
- }
- else if(mx_internal::phase == ButtonPhase.DOWN)
- {
- _loc1_ = selected ? mx_internal::selectedDownIconName : mx_internal::downIconName;
- }
- return _loc1_;
- }
-
- public function get emphasized() : Boolean
- {
- return mx_internal::_emphasized;
- }
-
- override protected function measure() : void
- {
- var textWidth:Number = NaN;
- var textHeight:Number = NaN;
- var bm:EdgeMetrics = null;
- var tempCurrentIcon:IFlexDisplayObject = null;
- var iconWidth:Number = NaN;
- var iconHeight:Number = NaN;
- var w:Number = NaN;
- var h:Number = NaN;
- var lineMetrics:TextLineMetrics = null;
- super.measure();
- textWidth = 0;
- textHeight = 0;
- if(label)
- {
- lineMetrics = measureText(label);
- textWidth = lineMetrics.width;
- textHeight = lineMetrics.height;
- textWidth += getStyle("paddingLeft") + getStyle("paddingRight") + getStyle("textIndent");
- textHeight += getStyle("paddingTop") + getStyle("paddingBottom");
- }
- try
- {
- bm = mx_internal::currentSkin["borderMetrics"];
- }
- catch(e:Error)
- {
- bm = new EdgeMetrics(3,3,3,3);
- }
- tempCurrentIcon = mx_internal::getCurrentIcon();
- iconWidth = !!tempCurrentIcon ? tempCurrentIcon.width : 0;
- iconHeight = !!tempCurrentIcon ? tempCurrentIcon.height : 0;
- w = 0;
- h = 0;
- if(labelPlacement == ButtonLabelPlacement.LEFT || labelPlacement == ButtonLabelPlacement.RIGHT)
- {
- w = textWidth + iconWidth;
- if(iconWidth != 0)
- {
- w += getStyle("horizontalGap") - 2;
- }
- h = Math.max(textHeight,iconHeight + 6);
- }
- else
- {
- w = Math.max(textWidth,iconWidth);
- h = textHeight + iconHeight;
- if(iconHeight != 0)
- {
- h += getStyle("verticalGap");
- }
- }
- if(bm)
- {
- w += bm.left + bm.right;
- h += bm.top + bm.bottom;
- }
- if(Boolean(label) && label.length != 0)
- {
- w += mx_internal::extraSpacing;
- }
- else
- {
- w += 6;
- }
- if(Boolean(mx_internal::currentSkin) && (isNaN(skinMeasuredWidth) || isNaN(skinMeasuredHeight)))
- {
- skinMeasuredWidth = mx_internal::currentSkin.measuredWidth;
- skinMeasuredHeight = mx_internal::currentSkin.measuredHeight;
- }
- if(!isNaN(skinMeasuredWidth))
- {
- w = Math.max(skinMeasuredWidth,w);
- }
- if(!isNaN(skinMeasuredHeight))
- {
- h = Math.max(skinMeasuredHeight,h);
- }
- measuredMinWidth = measuredWidth = w;
- measuredMinHeight = measuredHeight = h;
- }
-
- mx_internal function get phase() : String
- {
- return _phase;
- }
-
- public function set selected(param1:Boolean) : void
- {
- selectedSet = true;
- mx_internal::setSelected(param1);
- }
-
- mx_internal function changeIcons() : void
- {
- var _loc1_:int = 0;
- var _loc2_:int = 0;
- _loc1_ = int(icons.length);
- _loc2_ = 0;
- while(_loc2_ < _loc1_)
- {
- removeChild(icons[_loc2_]);
- _loc2_++;
- }
- icons = [];
- }
-
- override protected function commitProperties() : void
- {
- super.commitProperties();
- if(!initialized)
- {
- mx_internal::viewSkin();
- mx_internal::viewIcon();
- }
- if(enabledChanged)
- {
- textField.enabled = enabled;
- enabledChanged = false;
- }
- if(mx_internal::toggleChanged)
- {
- if(!toggle)
- {
- selected = false;
- }
- mx_internal::toggleChanged = false;
- }
- }
-
- [Bindable("dataChange")]
- public function get listData() : BaseListData
- {
- return _listData;
- }
-
- mx_internal function viewSkin() : void
- {
- var _loc1_:String = null;
- if(!enabled)
- {
- _loc1_ = selected ? mx_internal::selectedDisabledSkinName : mx_internal::disabledSkinName;
- }
- else if(mx_internal::phase == ButtonPhase.UP)
- {
- _loc1_ = selected ? mx_internal::selectedUpSkinName : mx_internal::upSkinName;
- }
- else if(mx_internal::phase == ButtonPhase.OVER)
- {
- _loc1_ = selected ? mx_internal::selectedOverSkinName : mx_internal::overSkinName;
- }
- else if(mx_internal::phase == ButtonPhase.DOWN)
- {
- _loc1_ = selected ? mx_internal::selectedDownSkinName : mx_internal::downSkinName;
- }
- mx_internal::viewSkinForPhase(_loc1_);
- }
-
- public function set label(param1:String) : void
- {
- labelSet = true;
- if(_label != param1)
- {
- _label = param1;
- labelChanged = true;
- invalidateSize();
- invalidateDisplayList();
- dispatchEvent(new Event("labelChanged"));
- }
- }
-
- mx_internal function viewSkinForPhase(param1:String) : void
- {
- var _loc2_:IFlexDisplayObject = null;
- var _loc3_:Number = NaN;
- var _loc4_:Class = null;
- var _loc5_:ISimpleStyleClient = null;
- _loc2_ = IFlexDisplayObject(getChildByName(param1));
- if(!_loc2_)
- {
- _loc4_ = Class(getStyle(param1));
- if(_loc4_)
- {
- _loc2_ = IFlexDisplayObject(new _loc4_());
- _loc2_.name = param1;
- _loc5_ = _loc2_ as ISimpleStyleClient;
- if(_loc5_)
- {
- _loc5_.styleName = this;
- }
- addChild(DisplayObject(_loc2_));
- _loc2_.setActualSize(unscaledWidth,unscaledHeight);
- if(_loc2_ is IInvalidating && initialized)
- {
- IInvalidating(_loc2_).validateNow();
- }
- else if(_loc2_ is ProgrammaticSkin && initialized)
- {
- ProgrammaticSkin(_loc2_).validateDisplayList();
- }
- skins.push(_loc2_);
- }
- }
- if(mx_internal::currentSkin)
- {
- mx_internal::currentSkin.visible = false;
- }
- mx_internal::currentSkin = _loc2_;
- if(mx_internal::currentSkin)
- {
- mx_internal::currentSkin.visible = true;
- }
- if(enabled)
- {
- if(mx_internal::phase == ButtonPhase.OVER)
- {
- _loc3_ = textField.getStyle("textRollOverColor");
- }
- else if(mx_internal::phase == ButtonPhase.DOWN)
- {
- _loc3_ = textField.getStyle("textSelectedColor");
- }
- else
- {
- _loc3_ = textField.getStyle("color");
- }
- textField.setColor(_loc3_);
- }
- }
-
- private function autoRepeatTimer_timerDelayHandler(param1:Event) : void
- {
- if(!enabled)
- {
- return;
- }
- dispatchEvent(new FlexEvent(FlexEvent.BUTTON_DOWN));
- if(autoRepeat)
- {
- autoRepeatTimer.reset();
- autoRepeatTimer.removeEventListener(TimerEvent.TIMER,autoRepeatTimer_timerDelayHandler);
- autoRepeatTimer.delay = getStyle("repeatInterval");
- autoRepeatTimer.addEventListener(TimerEvent.TIMER,autoRepeatTimer_timerHandler);
- autoRepeatTimer.start();
- }
- }
-
- protected function mouseDownHandler(param1:MouseEvent) : void
- {
- if(!enabled)
- {
- return;
- }
- systemManager.addEventListener(MouseEvent.MOUSE_UP,systemManager_mouseUpHandler,true);
- systemManager.stage.addEventListener(Event.MOUSE_LEAVE,stage_mouseLeaveHandler);
- mx_internal::buttonPressed();
- param1.updateAfterEvent();
- }
-
- override public function set enabled(param1:Boolean) : void
- {
- if(super.enabled == param1)
- {
- return;
- }
- super.enabled = param1;
- enabledChanged = true;
- invalidateProperties();
- invalidateDisplayList();
- }
-
- [Bindable("labelPlacementChanged")]
- public function get labelPlacement() : String
- {
- return mx_internal::_labelPlacement;
- }
-
- override public function get baselinePosition() : Number
- {
- var _loc1_:String = null;
- var _loc2_:TextLineMetrics = null;
- _loc1_ = label;
- if(!_loc1_)
- {
- _loc1_ = "Wj";
- }
- validateNow();
- if(!label && (labelPlacement == ButtonLabelPlacement.TOP || labelPlacement == ButtonLabelPlacement.BOTTOM))
- {
- _loc2_ = measureText(_loc1_);
- return (measuredHeight - _loc2_.height) / 2 + _loc2_.ascent;
- }
- return textField.y + measureText(_loc1_).ascent;
- }
-
- public function set toggle(param1:Boolean) : void
- {
- mx_internal::_toggle = param1;
- mx_internal::toggleChanged = true;
- invalidateProperties();
- invalidateDisplayList();
- dispatchEvent(new Event("toggleChanged"));
- }
-
- public function set emphasized(param1:Boolean) : void
- {
- mx_internal::_emphasized = param1;
- mx_internal::changeSkins();
- invalidateDisplayList();
- }
-
- [Bindable("valueCommit")]
- [Bindable("click")]
- public function get selected() : Boolean
- {
- return mx_internal::_selected;
- }
-
- mx_internal function buttonReleased() : void
- {
- systemManager.removeEventListener(MouseEvent.MOUSE_UP,systemManager_mouseUpHandler,true);
- systemManager.stage.removeEventListener(Event.MOUSE_LEAVE,stage_mouseLeaveHandler);
- if(autoRepeatTimer)
- {
- autoRepeatTimer.removeEventListener(TimerEvent.TIMER,autoRepeatTimer_timerDelayHandler);
- autoRepeatTimer.removeEventListener(TimerEvent.TIMER,autoRepeatTimer_timerHandler);
- autoRepeatTimer.reset();
- }
- }
-
- public function set listData(param1:BaseListData) : void
- {
- _listData = param1;
- }
-
- mx_internal function set phase(param1:String) : void
- {
- _phase = param1;
- invalidateSize();
- invalidateDisplayList();
- }
-
- private function stage_mouseLeaveHandler(param1:Event) : void
- {
- mx_internal::phase = ButtonPhase.UP;
- mx_internal::buttonReleased();
- }
-
- [Bindable("labelChanged")]
- public function get label() : String
- {
- return _label;
- }
-
- override protected function focusOutHandler(param1:FocusEvent) : void
- {
- super.focusOutHandler(param1);
- if(mx_internal::phase != ButtonPhase.UP)
- {
- mx_internal::phase = ButtonPhase.UP;
- }
- }
-
- override protected function createChildren() : void
- {
- super.createChildren();
- if(!textField)
- {
- textField = new UITextField();
- textField.styleName = this;
- addChild(textField);
- }
- }
-
- protected function rollOverHandler(param1:MouseEvent) : void
- {
- if(mx_internal::phase == ButtonPhase.UP)
- {
- if(param1.buttonDown)
- {
- return;
- }
- mx_internal::phase = ButtonPhase.OVER;
- param1.updateAfterEvent();
- }
- else if(mx_internal::phase == ButtonPhase.OVER)
- {
- mx_internal::phase = ButtonPhase.DOWN;
- param1.updateAfterEvent();
- if(autoRepeatTimer)
- {
- autoRepeatTimer.start();
- }
- }
- }
-
- public function set data(param1:Object) : void
- {
- var _loc2_:* = undefined;
- var _loc3_:* = undefined;
- _data = param1;
- if(Boolean(_listData) && _listData is DataGridListData)
- {
- _loc2_ = _data[DataGridListData(_listData).dataField];
- _loc3_ = "";
- }
- else if(_listData)
- {
- if(selectedField)
- {
- _loc2_ = _data[selectedField];
- }
- _loc3_ = _listData.label;
- }
- else
- {
- _loc2_ = _data;
- }
- if(_loc2_ !== undefined && !selectedSet)
- {
- selected = _loc2_ as Boolean;
- selectedSet = false;
- }
- if(_loc3_ !== undefined && !labelSet)
- {
- label = _loc3_;
- labelSet = false;
- }
- dispatchEvent(new FlexEvent(FlexEvent.DATA_CHANGE));
- }
-
- override protected function initializeAccessibility() : void
- {
- if(Button.mx_internal::createAccessibilityImplementation != null)
- {
- Button.mx_internal::createAccessibilityImplementation(this);
- }
- }
-
- [Bindable("dataChange")]
- public function get data() : Object
- {
- if(!_data)
- {
- _data = {};
- }
- return _data;
- }
-
- [Bindable("toggleChanged")]
- public function get toggle() : Boolean
- {
- return mx_internal::_toggle;
- }
-
- override public function styleChanged(param1:String) : void
- {
- styleChangedFlag = true;
- super.styleChanged(param1);
- if(!param1 || param1 == "styleName")
- {
- mx_internal::changeSkins();
- mx_internal::changeIcons();
- }
- else if(param1.toLowerCase().indexOf("skin") != -1)
- {
- mx_internal::changeSkins();
- }
- else if(param1.toLowerCase().indexOf("icon") != -1)
- {
- mx_internal::changeIcons();
- invalidateSize();
- }
- }
-
- override public function set toolTip(param1:String) : void
- {
- super.toolTip = param1;
- if(param1)
- {
- toolTipSet = true;
- }
- else
- {
- toolTipSet = false;
- invalidateDisplayList();
- }
- }
-
- override protected function updateDisplayList(param1:Number, param2:Number) : void
- {
- var _loc3_:int = 0;
- var _loc4_:int = 0;
- var _loc5_:IFlexDisplayObject = null;
- var _loc6_:Boolean = false;
- super.updateDisplayList(param1,param2);
- _loc3_ = int(skins.length);
- _loc4_ = 0;
- while(_loc4_ < _loc3_)
- {
- _loc5_ = IFlexDisplayObject(skins[_loc4_]);
- _loc5_.setActualSize(param1,param2);
- _loc4_++;
- }
- mx_internal::viewSkin();
- mx_internal::viewIcon();
- if(Boolean(mx_internal::currentIcon) && mx_internal::currentIcon is IUIComponent)
- {
- IUIComponent(mx_internal::currentIcon).enabled = enabled;
- }
- mx_internal::layoutContents(param1,param2,mx_internal::phase == ButtonPhase.DOWN);
- if(oldUnscaledWidth > param1 || textField.text != label || labelChanged || styleChangedFlag)
- {
- textField.text = label;
- _loc6_ = textField.truncateToFit();
- if(!toolTipSet)
- {
- if(_loc6_)
- {
- super.toolTip = label;
- }
- else
- {
- super.toolTip = null;
- }
- }
- styleChangedFlag = false;
- labelChanged = false;
- }
- oldUnscaledWidth = param1;
- }
- }
- }
-
-